package com.efast.cafe.portal.dao.statemach;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.efast.cafe.portal.bean.statemach.PortalStateMachConf;
import com.efast.cafe.portal.bean.statemach.PortalStateMachConfBean;
import com.efast.cafe.portal.bean.statemach.PortalStateMachConfQueryBean;
import com.efast.cafe.portal.bean.statemach.StateMachEntityInfo;

public interface PortalStateMachConfDao {

	/**
	 * 添加配置
	 * 
	 * @param state
	 */
	// @SaveOrUpdateOrDelControl
	void insertConf(PortalStateMachConf state);

	/**
	 * 编辑配置
	 * 
	 * @param state
	 */
	// @SaveOrUpdateOrDelControl
	void updateConf(PortalStateMachConf state);

	/**
	 * 删除配置
	 * 
	 * @param state
	 */
	// @SaveOrUpdateOrDelControl
	void deleteConf(PortalStateMachConf state);

	/**
	 * 根据Id获取配置
	 * 
	 * @param ConfId
	 * @return
	 */
	PortalStateMachConf getConfById(@Param(value = "id") Long ConfId);

	/**
	 * 获取配置列表带分页
	 * 
	 * @param queryBean
	 * @return
	 */
	// @PaginationControl(true)
	List<PortalStateMachConf> queryConfPageList(PortalStateMachConfQueryBean queryBean);

	/**
	 * 获取配置数量
	 * 
	 * @param queryBean
	 * @return
	 */
	Integer queryConfPageCount(PortalStateMachConfQueryBean queryBean);

	/**
	 * 根据配置ID获取配置信息
	 * 
	 * @param Confid
	 * @return
	 */
	PortalStateMachConfBean queryConfById(@Param(value = "confId") Long confId);

	/**
	 * 获取配置列表
	 * 
	 * @param companyName
	 * @return
	 */
	List<PortalStateMachConf> getConfListByCompanyCode(@Param(value = "companyCode") String companyCode);

	List<StateMachEntityInfo> getConfExtEntity(@Param(value = "confId") Long confId,
			@Param(value = "companyCode") String companyCode);
	
	Integer getMaxId();
}
